package com.sprouting.ops.model;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sprouting.ops.annotations.invoke.CheckIsNullOrEmpty;
import com.sprouting.ops.annotations.invoke.CheckLength;
import com.sprouting.ops.annotations.invoke.CheckNotNull;
import com.sprouting.ops.interfaces.AddGroup;
import com.sprouting.ops.interfaces.UpdGroup;
import lombok.Data;

/**
 * 个人密码箱(OpsPersonalPassword)(OPS_PERSONAL_PASSWORD) 表实体类
 *
 * @author ：lx（长沙麓谷）
 * @date 创建时间：2025-08-28 22:17:03
 */
@Data
@TableName("ops_personal_password")
public class OpsPersonalPassword extends BaseModel {

    /**
     * 主键
     */
    @CheckNotNull(message = "非法ID", groups = UpdGroup.class)
    @CheckIsNullOrEmpty(message = "无效ID", groups = AddGroup.class)
    @TableId
    private String id;
    /**
     * 所属用户id
     */
    private String userId;
    /**
     * 密码分类-字典
     * @see OpsSysDict#getId()
     */
    @CheckNotNull(message = "请选择字典分类")
    private String type;
    /**
     * 密码名称
     */
    @CheckLength(min = 1, max = 150, message = "名称超过长度限制")
    @CheckNotNull(message = "请输入名称")
    private String name;
    /**
     * 用户名
     */
    @CheckLength(max = 150, message = "用户名超过长度限制")
    private String userName;
    /**
     * 用户昵称
     */
    @CheckLength(max = 150, message = "用户昵称超过长度限制")
    private String niceName;
    /**
     * 密码状态，使用，已废弃
     * @see com.sprouting.ops.interfaces.ConstantBase.PasswordStatus
     */
    private Integer status;
    /**
     * 密码1
     */
    @CheckLength(max = 255, message = "密码1超过长度限制")
    private String password1;
    /**
     * 密码2
     */
    @CheckLength(max = 255, message = "密码2超过长度限制")
    private String password2;
    /**
     * 密码3
     */
    @CheckLength(max = 255, message = "密码3超过长度限制")
    private String password3;
    /**
     * 密码4
     */
    @CheckLength(max = 255, message = "密码4超过长度限制")
    private String password4;
    /**
     * 密码详细信息
     */
    @CheckLength(max = 1000, message = "密码详细信息超过长度限制")
    private String description;
    /**
     * 网址
     */
    @CheckLength(max = 500, message = "网址超过长度限制")
    private String webUrl;
    /**
     * 绑定电话
     */
    @CheckLength(max = 50, message = "电话超过长度限制")
    private String phone;
    /**
     * 安全问答
     */
    @CheckLength(max = 500, message = "安全问答超过长度限制")
    private String security;

}
